|
|
@@ -23,27 +23,27 @@ describe AgentsExporter do
|
23
|
23
|
expect(data[:tag_fg_color]).to eq(tag_fg_color)
|
24
|
24
|
expect(data[:tag_bg_color]).to eq(tag_bg_color)
|
25
|
25
|
expect(Time.parse(data[:exported_at])).to be_within(2).of(Time.now.utc)
|
26
|
|
- expect(data[:links]).to eq([{ :source => 0, :receiver => 1 }])
|
|
26
|
+ expect(data[:links]).to eq([{ :source => guid_order(agent_list, :jane_weather_agent), :receiver => guid_order(agent_list, :jane_rain_notifier_agent)}])
|
27
|
27
|
expect(data[:control_links]).to eq([])
|
28
|
|
- expect(data[:agents]).to eq(agent_list.map { |agent| exporter.agent_as_json(agent) })
|
|
28
|
+ expect(data[:agents]).to eq(agent_list.sort_by{|a| a.guid}.map { |agent| exporter.agent_as_json(agent) })
|
29
|
29
|
expect(data[:agents].all? { |agent_json| agent_json[:guid].present? && agent_json[:type].present? && agent_json[:name].present? }).to be_truthy
|
30
|
30
|
|
31
|
|
- expect(data[:agents][0]).not_to have_key(:propagate_immediately) # can't receive events
|
32
|
|
- expect(data[:agents][1]).not_to have_key(:schedule) # can't be scheduled
|
|
31
|
+ expect(data[:agents][guid_order(agent_list, :jane_weather_agent)]).not_to have_key(:propagate_immediately) # can't receive events
|
|
32
|
+ expect(data[:agents][guid_order(agent_list, :jane_rain_notifier_agent)]).not_to have_key(:schedule) # can't be scheduled
|
33
|
33
|
end
|
34
|
34
|
|
35
|
35
|
it "does not output links to other agents outside of the incoming set" do
|
36
|
36
|
Link.create!(:source_id => agents(:jane_weather_agent).id, :receiver_id => agents(:jane_website_agent).id)
|
37
|
37
|
Link.create!(:source_id => agents(:jane_website_agent).id, :receiver_id => agents(:jane_rain_notifier_agent).id)
|
38
|
38
|
|
39
|
|
- expect(exporter.as_json[:links]).to eq([{ :source => 0, :receiver => 1 }])
|
|
39
|
+ expect(exporter.as_json[:links]).to eq([{ :source => guid_order(agent_list, :jane_weather_agent), :receiver => guid_order(agent_list, :jane_rain_notifier_agent) }])
|
40
|
40
|
end
|
41
|
41
|
|
42
|
42
|
it "outputs control links to agents within the incoming set, but not outside it" do
|
43
|
43
|
agents(:jane_rain_notifier_agent).control_targets = [agents(:jane_weather_agent), agents(:jane_basecamp_agent)]
|
44
|
44
|
agents(:jane_rain_notifier_agent).save!
|
45
|
45
|
|
46
|
|
- expect(exporter.as_json[:control_links]).to eq([{ :controller => 1, :control_target => 0 }])
|
|
46
|
+ expect(exporter.as_json[:control_links]).to eq([{ :controller => guid_order(agent_list, :jane_rain_notifier_agent), :control_target => guid_order(agent_list, :jane_weather_agent) }])
|
47
|
47
|
end
|
48
|
48
|
end
|
49
|
49
|
|
|
|
@@ -71,4 +71,8 @@ describe AgentsExporter do
|
71
|
71
|
expect(AgentsExporter.new(:name => ",,").filename).to eq("exported-agents.json")
|
72
|
72
|
end
|
73
|
73
|
end
|
|
74
|
+
|
|
75
|
+ def guid_order(agent_list, agent_name)
|
|
76
|
+ agent_list.map{|a|a.guid}.sort.find_index(agents(agent_name).guid)
|
|
77
|
+ end
|
74
|
78
|
end
|